package com.hangxin.commons.util.resource;

import java.io.InputStream;
import java.net.URL;

/**
 * 2011-5-31 
 * @author fq
 *
 */
public class ResourceManager {

	/**
	 * 
	 * 根据Class查找文件
	 * @param classname class类
	 * @param filename 不带/是在参数类路径查找，带/是在classpath下查找
	 */
	public static URL getResourceClassUri(Class<?> classname,String filename)
	{		
		return classname.getResource(filename);
	}
	
	/**
	 * 根据Class查找文件
	 * @param classname class类
	 * @param filename 不带/是在参数类路径查找，带/是在classpath下查找
	 */
	public static InputStream getResourceClassIs(Class<?> classname,String filename)
	{		
		return classname.getResourceAsStream(filename);
	}
	
	/**
	 * 根据ClassLoader查找文件
	 * @param classname classLoad类
	 * @param filename 开始不能带/，在classpath路径查找。
	 */
	public static URL getResourceClassLoaderUri(ClassLoader cl,String filename)
	{		
		return cl.getResource(filename);
	}
	
	/**
	 * 根据ClassLoader查找文件
	 * @param classname classLoad类
	 * @param filename 开始不能带/，在classpath路径查找。
	 */
	public static InputStream getResourceClassLoaderIs(ClassLoader cl,String filename)
	{		
		return cl.getResourceAsStream(filename);
	}
	
	/**
	 * 根据当前线程查找文件
	 * @param classname ThreadclassLoader类
	 * @param filename 开始不能带/，在classpath路径查找。
	 */
	public static URL getResourceThreadUrl(String filename)
	{		
		return Thread.currentThread().getContextClassLoader().getResource(filename);
	}
	/**
	 * 根据当前线程查找文件
	 * @param classname ThreadclassLoader类
	 * @param filename 开始不能带/，在classpath路径查找。
	 */
	public static InputStream getResourceThreadIs(String filename)
	{		
		return Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
	}
	
	/**
	 * 根据系统ClassLoader查找文件
	 * @param classname ThreadclassLoader类
	 * @param filename 开始不能带/，在classpath路径查找。
	 */
	public static URL getResourceSysClassLoaderUrl(String filename)
	{	
		return ClassLoader.getSystemResource(filename);
	}
	
	/**
	 * 根据系统ClassLoader查找文件
	 * @param classname ThreadclassLoader类
	 * @param filename 开始不能带/，在classpath路径查找。
	 */
	public static InputStream getResourceSysClassLoaderIs(String filename)
	{
		return ClassLoader.getSystemResourceAsStream(filename);
	}
	
}
